package servlets;

import java.io.IOException;
import java.rmi.NotBoundException;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;

import javax.naming.CommunicationException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import businessDelegate.Delegate;
import dto.VehiculoDTO;;

/**
 * Servlet implementation class mantenimientoVehiculo
 */
//@WebServlet("/MantenimientoVehiculo")
@WebServlet(name="SrvMantenimientoVehiculo", urlPatterns={"/SrvMantenimientoVehiculo"}) 
public class SrvMantenimientoVehiculo extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public SrvMantenimientoVehiculo() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		if(request.getParameter("origen").contentEquals("loadPage"))
		{
			/*List<VehiculoDTO> vehiculosSinMantenimiento = new ArrayList<VehiculoDTO>();
			vehiculosSinMantenimiento.add(new VehiculoDTO());
			vehiculosSinMantenimiento.add(new VehiculoDTO());
			vehiculosSinMantenimiento.get(0).setIdVehiculo(1);
			vehiculosSinMantenimiento.get(0).setInfoRegistro("Vehiculo 1");
			vehiculosSinMantenimiento.get(1).setIdVehiculo(2);
			vehiculosSinMantenimiento.get(1).setInfoRegistro("Vehiculo 2");*/
			//vehiculosSinMantenimiento = Delegate.getInstancia().getVehiculosSinMantenimiento();
			List<VehiculoDTO> vehiculosSinMantenimiento = new ArrayList<VehiculoDTO>();
			
			try {
				vehiculosSinMantenimiento = Delegate.getInstancia().getVehiculosSinMantenimiento();
			} catch (CommunicationException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (NotBoundException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			

			//request.getSession().setAttribute("vehiculosSinMantenimiento", vehiculosSinMantenimiento);
			request.setAttribute("vehiculosSinMantenimiento", vehiculosSinMantenimiento);
			request.getRequestDispatcher("jsp/mantenimientoVehiculos.jsp").forward(request, response);
		}
		
		if(request.getParameter("origen").contentEquals("confirmarmantenimiento"))
		{
			//RECIBO LOS VEHICULOS
			String[] vehiculos = request.getParameterValues("vehiculos[]");
			if (vehiculos != null) {
				List <String> idVehiculos = new ArrayList<String> ();						
				for (String id : vehiculos) {
					//HAGO EL UPDATE DE LOS VEHICULOS SELECCIONADOS PARA QUE SE MARQUEN COMO MANTENIDOS
					//to-do
					//pasa los Id de los vehiculos a una lista de strings para despues mandarlos todos juntos al negocio.
					idVehiculos.add(id);			
				}
				try {
					//System.out.println(idVehiculos);
					Delegate.getInstancia().actualizarVehiculosMantenimiento(idVehiculos);
				} catch (CommunicationException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} catch (NotBoundException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				//REDIRECCIONO DE NUEVO A LA PAGINA DE MANTENIMIENTO DE VEHICULOS CON UN MENSAJE
				String mensaje = "Los vehiculos han sido puestos en mantenimiento.";
				String ruta = "../MantenimientoVehiculo?origen=loadPage";
				response.sendRedirect("jsp/mensajes.jsp?mensaje="+mensaje+"&ruta="+ruta);
			}
			else {
				//REDIRECCIONO DE NUEVO A LA PAGINA DE MANTENIMIENTO DE VEHICULOS CON UN MENSAJE
				String mensaje = "No hay vehiculos para mantener.";
				String ruta = "../MantenimientoVehiculo?origen=loadPage";
				response.sendRedirect("jsp/mensajes.jsp?mensaje="+mensaje+"&ruta="+ruta);
			}
		}	
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
	}

}
